#pragma once
#include "btree.h"

typedef BTNode* QueueDataType;

typedef struct QueueNode
{
	struct QueueNode* next;
	QueueDataType btnode;
}QueueNode;

typedef struct Queue
{
	struct QueueNode* head;
	struct QueueNode* tail;
}Queue;


QueueNode* BuyNode(QueueDataType x);

void InitQueue(Queue* pq);

void QueuePush(Queue* pq, QueueDataType x);

QueueDataType QueuePop(Queue* pq);

bool IsQueueEmpty(Queue* pq);

void QueueDestory(Queue* pq);
